<html>
<title>SNUVM 0.2 help contents
</title>
<body>
<center>
<h3>SNUVM - ARM9 Assembly and Runtime Simulator</h3>
<h4>Release 0.3</h4>
<h4>February 2010</h4>

<h4>Operating Requirements</h4>
</center>
<p>SNUVM is written in Java and 
requires at least Release 1.4 of the J2SE Java Runtime Environment (JRE) to work.  
The graphical IDE is implemented using Swing. It has been 
tested on Windows XP , Vista and 7, Mac OS X, and is also being used under Linux.

<center>
<h4>Some SNUVM Assembler and Simulator Limitations</h4>
</center>

 
Limitations of SNUVM as of Release 0.3 include:
<ul>
<li>Memory segments (text, data, stack, kernel text, kernel data) are limited to 4MB each starting at their
respective base addresses.
<li>There is no pipelined mode (but delayed branching is supported).
<li>Self-modifying code is not supported.  This is a program that during
execution modifies the contents of its own text segment (binary instructions).
<li>If you open a file which is a link or shortcut to another file, SNUVM will <em>not</em>
open the target file.  The file open dialog is implemented using Java Swing's JFileChooser, 
which does not support links.
</ul>
Releases 0.2 and later assemble and simulate nearly all the ARM9 instructions documented in the 
textbook <i>ARM System Developer's Guide</i> by Sloss, Symes and Wright, 
Elsevier - Morgan Kaufmann, 2009.  A subset of basic and pseudo instructions, directives,
and system services described in Appendix A are implemented.

<center>
<h4>Some SNUVM IDE Limitations</h4> 
</center>
The text editor is not "ARM9 aware" and is similar to using Notepad.  It does however display
the current cursor position in line-column format and allows you
to display line numbers.
It also has unlimited Undo/Redo capability.
		
<p>You can only work on one file at a time.  Selecting New or Open closes the existing file.
It is however possible to assemble and link a multi-file project by placing all source files
in the same directory and select the "Assemble all files in directory"
setting in the Settings menu.  However you can run the project from any of its files
as long as there is a statement with the global label "main".  
The SNUVM command mode additionally allows you to list specific files to
be assembled and linked.

<p>Very few configuration changes, besides those in the Settings menu, are saved from one session to the next.
The editor settings, which include font settings and display of line numbers, are saved.

<p>The IDE will work only with the SNUVM assembler.  It cannot be used 
with any other compiler, assembler, or simulator.  The SNUVM assembler and simulator
can be used either through the IDE or from a command prompt.

<center>
<h4>Known Bugs</h4>
</center>
<p>The Screen Magnifier screen capture feature does not appear to work properly under Windows Vista.

<p>
<hr>
<p>
This document is available for printing on the SNUVM home page
<tt><b>http://snuvm.snu.ac.kr/</b></tt>.
</body>
</html>